package cn.tang.tframe.common;

/**
 * 生命周期抽象类
 * <p/>
 * 创建时间: 14-8-8 下午4:43<br/>
 *
 * @author tanghc
 * @since v0.0.1
 */
public abstract class AbstractLifecycle implements ILifecycle{
	protected volatile boolean isStart = false;

	@Override
	public void start() {
		if(!isStart){
			doStart();
			isStart = true;
		}
	}

	@Override
	public boolean isStarted() {
		return isStart;
	}

	/**
	 * 进行实际的启动操作
	 */
	protected abstract void doStart();
}
